草庐IT

php - preg_replace 仅匹配的一部分

全部标签

ruby - Sinatra 中的动词不可知匹配

我们可以写get'/foo'do...end和post'/foo'do...end这很好。但是我可以在一个路由中组合多个HTTP动词吗? 最佳答案 这可以通过multi-routeextension实现这是sinatra-contrib的一部分:require'sinatra'require"sinatra/multi_route"route:get,:post,'/foo'do#"GET"or"POST"prequest.env["REQUEST_METHOD"]end#Orformodule-styleapplicationsc

ruby-on-rails - 尝试在 Cucumber 功能中使用 "Examples"部分时解析问题

谷歌搜索此错误消息时运气不佳features/manage_hand_evaluator.feature:features/manage_hand_evaluator.feature:21处的解析错误。在期望以下之一时找到示例:评论、py_string、行、场景、场景大纲、步骤、标签。(当前状态:步骤)。(小cucumber::解析器::ParseError)这是示例部分的设置(此时没有其他场景,只有“功能:”部分之后的这个场景)...Scenario:EvaluatingforcurrentstraightsGivenIamaplayerwithWhentheboardisThent

ruby - 具有命名捕获组的正则表达式在 Ruby 中获取所有匹配项

我有一个字符串:s="123--abc,123--abc,123--abc"我尝试使用Ruby1.9的新功能“命名组”来获取所有命名组信息:/(?\d*)--(?\s*)/是否有像Python的findall那样返回matchdata集合的API?在这种情况下,我需要返回两个匹配项,因为123和abc重复两次。每个匹配数据都包含每个命名捕获信息的详细信息,因此我可以使用m['number']获取匹配值。 最佳答案 命名捕获只适用于一个匹配结果。Ruby的findall类比是String#scan.您可以使用scan结果作为数组,或将

ruby - 匹配数组中的模式

有一个包含2个元素的数组test=["iamaboy","iamagirl"]我想测试是否在数组元素中找到了一个字符串,比如:test.include("boy")==>truetest.include("frog")==>false我可以那样做吗? 最佳答案 使用正则表达式。test=["iamaboy","iamagirl"]test.find{|e|/boy/=~e}#=>"iamaboy"test.find{|e|/frog/=~e}#=>nil 关于ruby-匹配数组中的模式,

ruby-on-rails - 查找日期时间与今天日期匹配的记录 - Ruby on Rails

我有一张交易表,需要查找日期与今天匹配的记录。在Rails控制台中,我需要匹配的日期字段如下所示。我已经分配了一条记录进行测试。ruby-1.9.2-p0>deal.start=>Tue,10May201100:00:00UTC+00:00如果我像这样尝试查找与开始日期匹配的任何记录,我会得到nilruby-1.9.2-p0>Deal.find_by_start(Date.today)=>nil然后我想我可以通过将Date.today转换为日期时间来匹配。ruby-1.9.2-p0>Date.today.to_datetime=>Tue,10May201100:00:00+0000ru

ruby - 在 Sinatra 中,你如何制作一个 "before"过滤器来匹配除某些路由之外的所有路由

我有一个RubySinatra应用程序,我有一些代码需要在除少数异常(exception)情况外的所有路由上执行。我该怎么做?如果我想在选定的路由(白名单样式)上执行代码,我会这样做:['/join',"/join/*","/payment/*"].eachdo|path|beforepathdo#somecodeendend我该如何反其道而行之(黑名单样式)?我想匹配除'/join'、'/join/*'和'/payment/*'之外的所有路由 最佳答案 负面前瞻:before/^(?!\/(join|payment))/do#..

ruby - 如何使用一行正则表达式来获取匹配的内容

我是ruby​​的新手,我想知道我是否可以只用一行来完成这项工作。以本站的“搜索”为例。当用户键入[ruby]regex时,我可以使用以下代码获取标签和关键字'[ruby]regex'=~/\[(.*?)\](.*)/tag,keyword=$1,$2我们可以只写一行吗?更新非常感谢!我可以让它更难更有趣吗,输入可能包含多个标签,例如:[ruby][regex][rails]oneline是否可以使用一行代码获取标签数组和关键字?我试过了,但失败了。 最佳答案 您需要Regexp#match方法。如果您编写/\[(.*?)\](.*

ruby - 使用 RSpec 测试 ActionMailer 多部分电子邮件(文本和 html 版本)

我目前正在使用RSpec测试我的邮件程序,但我已经开始按照Rails指南中的说明设置多部分电子邮件:http://guides.rubyonrails.org/action_mailer_basics.html#sending-multipart-emails我有文本和html格式的邮件程序模板,但看起来我的测试只检查HTML部分。有没有办法单独检查文本模板?它是否只检查HTMLView,因为它在默认顺序中是第一个? 最佳答案 为了补充nilmethod的出色答案,您可以通过使用共享示例组测试文本和html版本来清理规范:spec_

ruby-on-rails - 如何将动态 Ruby 代码嵌入到 Slim 模板中的 "javascript"部分?

一种方式:javascript_tagdo=="varall_product_ids=#{existing_ids.to_json};"=="varproducts_json=#{@filter.data.to_json};"或:=%Q{varall_product_ids=#{existing_ids.to_json};varproducts_json=#{@filter.data.to_json};}有没有更好的解决方案? 最佳答案 slimjavascript:varall_product_ids="#{existing_id

ruby-on-rails - 如何将重音字符与正则表达式匹配?

我正在运行RubyonRails3.0.10和Ruby1.9.2。我正在使用以下正则表达式来匹配名称:NAME_REGEX=/^[\w\s'"\-_&@!?()\[\]-]*$/uvalidates:name,:presence=>true,:format=>{:with=>NAME_REGEX,:message=>"formatisinvalid"}但是,如果我尝试保存如下的一些单词:OilalàPìRùby...#Infewwords,thosewithaccentedcharacters我有一个验证错误“名称格式无效。。我如何更改上面的正则表达式以便匹配重音字符,如à、è、é、ì